/*  ----------------------------------------------------------------------------
 *  Arello Mobile
 *  Fast 3d Engine
 *  ----------------------------------------------------------------------------
 * Except where otherwise noted, this work is licensed under
 * http://creativecommons.org/licenses/by/3.0
 */
#pragma once

#include <lib3d/hard/Manager.h>
#include <Creator.h>
#include <sstream>
#include <map>

namespace liba {
namespace lib3d {
namespace hard {
namespace directx8 {

struct AdapterInfo;

class Creator :
	virtual public liba::Creator,
	virtual public hard::Manager::Creator
{
	std::stringstream configuration_data;
	mutable std::string configDataStr;
public:
	const std::string & get_configuration_data()const
	{
		configDataStr = configuration_data.str();
		return configDataStr;
	}
	Creator();
	~Creator();
private:
	std::map<std::string, int> GetCapsMap(const AdapterInfo& ai);
	void createHardwaresRegular();
	void createHardwaresPerfHud();
};

} // namespace directx8
} // namespace hard
} // namespace lib3d
} // namespace liba
using namespace liba;
